#include "pacientes.h"

void Make(Pacientes &pacientes){
    pacientes=NULL;
}


bool esVacioConsultorio(Pacientes pacientes){
    return (bool)(pacientes==NULL);
}

void Insert(Pacientes &pacientes,Paciente paciente){
    if (pacientes==NULL){
        pacientes=new NodoABB;
        pacientes->info=paciente;
        pacientes->hizq=NULL;
        pacientes->hder=NULL;
    }else{
        if (seleccionaCedula(paciente)<seleccionaCedula(pacientes->info))
            Insert(pacientes->hizq,paciente);
        else
            Insert(pacientes->hder,paciente);
    }
}

void cargaPacienteConsultorio(Pacientes &pacientes){
Paciente paciente;
bool ok;

    cargaPaciente(paciente);
    //RegistrarPaciente(pacientes,paciente,ok);
    while(!ok){
        printf("Ya existe paciente con dicha cedula.\nIngrese nuevamente los datos\n");
        cargaPaciente(paciente);
        //RegistrarPaciente(pacientes,paciente,ok);
    }
}

void cargaConsultaPacientes(Pacientes &pacientes, long int ced, Consulta consulta){
    bool encontre=false;
    while (!encontre){
        if (ced==seleccionaCedula(pacientes->info)){
            cargaConsultaPaciente(pacientes->info,consulta);
            encontre=true;
        }
        else{
            if (ced<seleccionaCedula(pacientes->info))
                pacientes=pacientes->hizq;
            else
                pacientes=pacientes->hder;
        }
    }
}

bool Member(Pacientes pacientes,long int ced) {
bool encontre=false;
    while ((!encontre) && (pacientes!=NULL))
        if (ced==seleccionaCedula(pacientes->info))
            encontre=true;
        else{
            if (ced<seleccionaCedula(pacientes->info))
                pacientes=pacientes->hizq;
            else
                pacientes=pacientes->hder;
        }
    return encontre;
}

Paciente Find(Pacientes pacientes,long int ced) {
bool encontre=false;
    while (!encontre){
        if (ced==seleccionaCedula(pacientes->info))
            encontre = true;
        else{
            if (ced<seleccionaCedula(pacientes->info))
                pacientes=pacientes->hizq;
            else
                pacientes=pacientes->hder;
        }
    }
    return pacientes->info;
}

void ListarHistorialPaciente(Pacientes pacientes){
    bool ok;
    long int ced;
    cargaCedula(ced);
    //ListarHistorial(pacientes,ced,ok);
    while(!ok){
        printf("No existe paciente con dicha cedula.\nIngrese nuevamente los datos\n");
        cargaCedula(ced);
        //ListarHistorial(pacientes,ced,ok);
    }
}
